package com.example.demo.manhua;

/**
 * @ClassName : GreatestCommonDivisorV1
 * @Description :
 * 用较大数除以较小数，再用出现的余数（第一余数）去除除数，再用出现的余数（第二余数）去除第一余数，
 * 如此反复，直到最后余数是0为止。如果是求两个数的最大公约数，那么最后的除数就是这两个数的最大公约数。
 * ************************************
 * 当两个整数比较大时，取模性能比较差
 * @Author : wind
 * @Date: 2021-01-27 16:40
 * @Version 1.0
 */
public class GreatestCommonDivisorV1 {

    public static void main(String[] args) {
        System.out.println(getMax(25, 15));
        System.out.println(getMax(25, 50));
        System.out.println(getMax(380, 76));
    }

    static int getMax(int a, int b) {
        int big = a > b ? a : b;
        int small = a < b ? a : b;
        if (big % small == 0) {
            return small;
        }
        return getMax(big % small, small);
    }
}
